#ifndef _YEP_ENGINE_COLLISION_HANDLER_HPP
#define _YEP_ENGINE_COLLISION_HANDLER_HPP

#include "../common.hpp"

namespace yep
{
class CollisionEvent;

/**
 * @brief Handle collision among objects
 **/
class CollisionHandler
{
public:
    virtual ~CollisionHandler() {};

    /**
     * @brief Verify if two objects collides.
     *
     * It must to have transity, i.e. a.collides(b) == b.collides(a)
     **/
    virtual bool collides( CollisionHandler &other ) = 0;

    /**
     * @brief Occurs when two objects collides.
     **/
    virtual void evCollision( CollisionEvent &other ) {}
};

}

#endif // _YEP_ENGINE_COLLISION_HANDLER_HPP

